import axios from 'axios'

// import { useRouter } from 'vue-router'

// const router = useRouter()


// import { showToast } from 'vant';

// axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8';
axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded';


let apiUrl: string | undefined = ''
const token = "app-omLpEtfLSEfr67Bn374fgEX4"


// 创建axios实例
const service = axios.create({
    baseURL: import.meta.env.VITE_BASE_URL,
    //   baseURL:'/api',
    // 超时
    timeout: 20000,
    headers: {
        'Authorization': `Bearer ${token}`,

    }
})
// console.log('import.meta.env.VITE_BASE_URL',import.meta.env.VITE_BASE_URL)



// request拦截器
service.interceptors.request.use(config => {
    apiUrl = config.url

    // 是否需要设置 token
    //   const isToken = (config.headers || {}).isToken === false
    // if (getToken() && !isToken) {
    //   config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
    //   // config.headers['Authorization'] = 'Base ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
    //   // config.headers['secret'] = 'abcdefghijklmnopqrstuvwxyz' 
    // }
    // get请求映射params参数
    if (config.method === 'get' && config.params) {
        let url = config.url + '?';
        for (const propName of Object.keys(config.params)) {
            const value = config.params[propName];
            var part = encodeURIComponent(propName) + "=";
            if (value !== null && typeof (value) !== "undefined") {
                if (typeof value === 'object') {
                    for (const key of Object.keys(value)) {
                        let params = propName + '[' + key + ']';
                        var subPart = encodeURIComponent(params) + "=";
                        url += subPart + encodeURIComponent(value[key]) + "&";
                    }
                } else {
                    url += part + encodeURIComponent(value) + "&";
                }
            }
        }
        url = url.slice(0, -1);
        config.params = {};
        config.url = url;
    }
    return config
}, error => {
    Promise.reject(error)
})

// 响应拦截器
service.interceptors.response.use(res => {
    return res

    // const code = res.data?.code;

    // let msg = ''

    // if (code === 0) {
    //     return res.data
    // } else {
    //     // console.log("****",code)
    //     // return 
    //     switch (apiUrl) {
    //         case '/login.loginbusiness.do':
    //             msg = res.data.message
    //             break;
    //         case '/login.changepwd.do':
    //             msg = res.data.message
    //             break;
    //         // case '/loginuser.fsyzm.do':
    //         //     // msg = res.data.data[0].name
    //         //     msg = res.data.message
    //         //     break;
    //         default:
    //             msg = res.data.message === 'error' ? errorCode['default'] : res.data.message
    //             break;
    //     }
    //     console.log(msg)

    //     // showToast(msg);
    //     if(code === 100401){
    //         // debugger
    //         setTimeout(()=>{
    //             window.location.href = '/login'
    //         },2000)

    //     }
    //     return res.data
    // }
},
    error => {

        let { message } = error;
        if (message == "Network Error") {
            message = "后端接口连接异常";
        }
        else if (message.includes("timeout")) {
            message = "系统接口请求超时";
        }
        else if (message.includes("Request failed with status code")) {
            if (message.substr(message.length - 3) == "413") {
                message = "图片太大,请上传8M以下的图片"

            } else {
                message = "系统接口" + message.substr(message.length - 3) + "异常";
            }
        }
        console.log("message",message)
        // showToast(message);
        return Promise.reject(error)
    }
)

export default service
